﻿using System;
using Database.Context;
using Model = Database.Models;
using QuanLyThongTinCoSo.BaseForm;
using QuanLyThongTinCoSo.Biz;
using QuanLyThongTinCoSo.Common;

namespace QuanLyThongTinCoSo.Forms.User
{
    public partial class frmUserChangePassword : frmDetail
    {
        public frmUserChangePassword()
        {
            InitializeComponent();

            Text = @"Đổi mật khẩu người sử dụng";
        }

        #region Validation

        protected override bool Validation()
        {
            bool flag = true;

            errorProvider.Dispose();

            if (string.IsNullOrEmpty(txtOldPassword.Text))
            {
                errorProvider.SetError(txtOldPassword, "Bạn chưa nhập mật khẩu cũ. Xin vui lòng kiểm tra lại");
                flag = false;
            }

            if (string.IsNullOrEmpty(txtNewPassword.Text))
            {
                errorProvider.SetError(txtNewPassword, "Bạn chưa nhập mật khẩu mới. Xin vui lòng kiểm tra lại");
                flag = false;
            }

            if (string.IsNullOrEmpty(txtConfirmPassword.Text))
            {
                errorProvider.SetError(txtConfirmPassword, "Bạn chưa nhập mật khẩu cũ (xác đinh). Xin vui lòng kiểm tra lại");
                flag = false;
            }

            if (!string.Equals(txtNewPassword.Text, txtConfirmPassword.Text, StringComparison.InvariantCultureIgnoreCase))
            {
                errorProvider.SetError(txtNewPassword, "Mật khẩu mới và mật khẩu cũ (xác đinh) khác nhau. Xin vui lòng kiểm tra lại");
                flag = false;
            }

            return flag;
        }

        #endregion

        #region Insert

        /// <summary>
        /// Change password function
        /// </summary>
        protected void ChangePassword(object sender, EventArgs args)
        {
            const string currentUser = "admin";

            var biz = new UserBiz();

            var user = biz.GetItemByAccount(currentUser);
            if (user != null)
            {
                var decodedPassword = Utilities.DecodedPassword(user.Password);
                if (!string.Equals(decodedPassword, txtOldPassword.Text, StringComparison.InvariantCultureIgnoreCase))
                {
                    errorProvider.SetError(txtOldPassword, "Mật khẩu cũ không chính xác. Xin vui lòng kiểm tra lại");
                }
                else
                {
                    user.Password = Utilities.EncodePassword(txtNewPassword.Text);
                    biz.Update(user);
                }
            }
        }

        #endregion
    }
}